Computer systems that include a combination of CPUs (central processing units), GPUs (graphics processing units), and other processors have become an important class of platforms. Industry standard frameworks have been developed for programming these so-called heterogeneous systems. One such framework is OpenCL (Open Computing Language). Development of software for such systems involves checking the functionality of portions of the code as part of a debugging process. Solutions for line-by-line debugging of programs for such systems has been limited, however, usually involving hardware-specific implementations.